import time

from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.extensions.android.nativekey import AndroidKey
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By

desired_caps = {
  'platformName': 'Android', # 被测手机是安卓
  'platformVersion': '14', # 手机安卓版本，如果是鸿蒙系统，依次尝试 12、11、10 这些版本号
  'deviceName': 'iphone 16 pro max', # 设备名，安卓手机可以随意填写
  'appPackage': 'com.ss.android.ugc.aweme', # 启动APP Package名称
  'appActivity': '.splash.SplashActivity', # 启动Activity名称
  'unicodeKeyboard': True, # 自动化需要输入中文时填True
  'resetKeyboard': True, # 执行完程序恢复原来输入法
  'noReset': True,       # 不要重置App, 保留当前登录数据
  'newCommandTimeout': 6000,         #appium超时时间
  'automationName' : 'UiAutomator2'
  # 抖音
}

web = webdriver.Remote('http://localhost:4723/wd/hub',
   options=UiAutomator2Options().load_capabilities(desired_caps))
web.implicitly_wait(5)

# 已知坐标, 点击坐标
x , y = 991, 162
web.tap([(x, y)])

# 定位搜索框, 输入内容
web.find_element(By.ID, 'et_search_kw').send_keys("saber培养攻略")
# 输入回车键，确定搜索
web.press_keycode(AndroidKey.ENTER)
# 定位当前页面第三个视频, 并点击
web.find_element(By.XPATH, '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.viewpager.widget.ViewPager/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout[3]/android.view.ViewGroup/android.view.ViewGroup/android.widget.LinearLayout/android.view.ViewGroup/android.view.ViewGroup/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout[3]/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.FrameLayout[1]/android.view.ViewGroup/android.view.View[1]').click()

# 滑动翻页, 定位初始坐标和滑动后坐标
screenSize = web.get_window_size()
screenW = screenSize['width']
screenH = screenSize['height']
x =  screenW/2
y1 = int(screenH*0.8)
y2 = int(screenH*0.2)

for x in range(5) :
   web.swipe(start_x=x, start_y=y1, end_x=x, end_y=y2, duration=800)

time.sleep(2)
web.quit()